import Vuex from 'vuex'
// import Vue from 'vue'

// Vue.use(Vuex)

// const store = new Vuex.Store({
//   state: {
//     count: 0
//   },
//   mutations: {
//     increment (state) {
//       state.count++
//     }
//   }
// })

// export default store
import getters from './getters/getters'
import mutations from './mutations/mutations'
import state from './state/state'
import actions from './actions/actions'
const isDev = process.env.NODE_ENV === 'development'
export default () => {
  const store = new Vuex.Store({
    strict: isDev, // 禁止直接修改state的值，必须通过mutations
    state,
    getters,
    mutations,
    actions,
  })

  // if (module.hot) {
  //   // 使 action 和 mutation 成为可热重载模块
  //   module.hot.accept(['./mutations', './modules/a'], () => {
  //     // 获取更新后的模块
  //     // 因为 babel 6 的模块编译格式问题，这里需要加上 `.default`
  //     const newMutations = require('./mutations').default
  //     const newModuleA = require('./modules/a').default
  //     // 加载新模块
  //     store.hotUpdate({
  //       mutations: newMutations,
  //       modules: {
  //         a: newModuleA
  //       }
  //     })
  //   })
  // }

  return store
}
